package Ex_6_2;

import java.util.HashSet;
import java.util.Set;

public class Ingrediente {

	private Set<Produto> produtos;
	private String tipo;
	private int dosagem;
	/**
	 * 
	 */
	public Ingrediente() {
		super();
		produtos = new HashSet<>();
	}
	public Set<Produto> getProdutos() {
		return produtos;
	}
	public void setProdutos(Set<Produto> produtos) {
		this.produtos = produtos;
	}
	public String getTipo() {
		return tipo;
	}
	public void setTipo(String tipo) {
		this.tipo = tipo;
	}
	public int getDosagem() {
		return dosagem;
	}
	public void setDosagem(int dosagem) {
		this.dosagem = dosagem;
	}
	
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((tipo == null) ? 0 : tipo.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Ingrediente other = (Ingrediente) obj;
		if (tipo == null) {
			if (other.tipo != null)
				return false;
		} else if (!tipo.equals(other.tipo))
			return false;
		return true;
	}
	public void adicionarProduto(Produto p){
		if(!this.getProdutos().contains(p)){
			this.produtos.add(p);
			p.adicionarIngrediente(this);
		}
	}
	
	public void removerProduto(Produto p){
		if(this.getProdutos().contains(p)){
			this.produtos.remove(p);
			p.removerIngrediente(this);
		}
	}
}
